#pragma once

#include "includes.h"

/*
 * 处理域名解析，参考DNS报文格式
 */

struct resolv_entries {
    uint8_t addrs_len;
    ipv4_t *addrs;
};

//域名按字符'.'进行划分，保存各段长度，构造DNS请求包时会用到
void resolv_domain_to_hostname(char *, char *);

//处理DNS响应包中的解析结果，可参照DNS数据包结构
static void resolv_skip_name(uint8_t *reader, uint8_t *buffer, int *count);

//构造DNS请求包向8.8.8.8进行域名解析，并获取响应包中的IP
struct resolv_entries *resolv_lookup(char *);

//释放用来保存域名解析结果的空间
void resolv_entries_free(struct resolv_entries *);


